package com.gy.springboot.component;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

// 定义拦截器
/**
 * @author GY
 * @date 2018年10月23日
 * @说明:登陆检查
 */
public class LoginHandlerIntercepter implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler) throws Exception {
        // 登陆接口将登陆用户存入session"loginUser" 略
        // session 获取 检查登陆状态 略...
        Object user = request.getSession().getAttribute("loginUser");
        if (user == null) {
            // 未登录，拦截返回登陆页面
            request.setAttribute("msg", "没有权限请先登录");
            request.getRequestDispatcher("/index.html").forward(request, response);
            return false;
        } else {
            // 已登陆，放行请求
            return true;
        }
    }

    @Override
    public void afterCompletion(HttpServletRequest request,
            HttpServletResponse response, Object handler, Exception ex)
                    throws Exception {
        HandlerInterceptor.super.afterCompletion(request, response, handler,
                ex);
    }
    
    @Override
    public void postHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {
        HandlerInterceptor.super.postHandle(request, response, handler,
                modelAndView);
    }

}
